R Chart в SSRS (Отображение диаграммы в SSRS) - Часть 3

Tags: SSRS, R, SQL Server

В последнем посте мы показали, как можно установить внешний пакет, например ggplot2, в ML-сервисы, а также как мы можем использовать данные в SQL Server для создания диаграммы в студии R.

В этом сообщении мы расскажем вам, как создать диаграмму на SQL Server и показать ее в SSRS.

Чтобы создать диаграмму нам нужно:

  1. Создать диаграмму как двоичную переменную var

<span style="color: #008000;"><strong>exec sp_execute_external_script</strong>  @language =<strong>N'R</strong>',</span>

<strong><span style="color: #800080;">@script=N'library("ggplot2")</span></strong>

<strong><span style="color: #800080;">fields<-inputDataSet</span></strong>

<strong><span style="color: #800080;">fields<-na.omit(fields)</span></strong>

<strong><span style="color: #800080;">image_file = tempfile(); </span></strong>

<strong><span style="color: #800080;">jpeg(filename = image_file, width=1000, height=1000); </span></strong>

<strong><span style="color: #800080;">print(ggplot(fields,aes(x=fields$TaxAmt,y=fields$TaxAmt))+geom_boxplot()+facet_grid(fields$Color~.)</span></strong>

<strong><span style="color: #800080;">)</span></strong>

<strong><span style="color: #800080;">dev.off();</span></strong>

<strong><span style="color: #800080;">OutputDataset <- data.frame(data=readBin(file(image_file,"rb"),what=raw(),n=1e6)) </span></strong>

<strong><span style="color: #800080;">'</span></strong>,<strong><span style="color: #ff6600;">@input_data_1 =N'select Color,Size,class,TaxAmt,SalesAmount

from [dbo].[FactInternetSales] FIS inner join

[dbo].[DimProduct] DP on FIS.ProductKey=dp.ProductKey'  

,@input_data_1_name = N'inputDataSet'

</span><span style="color: #ff6600;">,@output_data_1_name = N'OutputDataset'

</span><span style="color: #008080;">WITH RESULT SETS</span> <span style="color: #000080;">((plot varbinary(max)));</span></strong>

 

1- запустить внешние скрипты, уже упомянутые в последних сообщениях

2- @script=N’library(“ggplot2″)

fields<-inputDataSet

fields<-na.omit(fields)

image_file = tempfile();

jpeg(filename = image_file, width=1000, height=1000);

print(ggplot(fields,aes(x=fields$TaxAmt,y=fields$TaxAmt))+geom_boxplot()+facet_grid(fields$Color~.)

)

dev.off();

OutputDataset <- data.frame(data=readBin(file(image_file,”rb”),what=raw(),n=1e6))

‘,

library(“ggplot2”) : обратитесь к пакету

fields<-inputDataSet: получите данные

image_file = tempfile();

jpeg(filename = image_file, width=500, height=500);  для создания файла изображения

ggplot(fields,aes(x=fields$TaxAmt,y=fields$TaxAmt))+geom_boxplot()+facet_grid(fields$Color~.)

: код был объяснен в последних сообщениях.

dev.off(); OutputDataset <- data.frame(data=readBin(file(image_file,”rb”),what=raw(),n=1e6)) ‘, : для создания двоичной переменной var для преобразования графика в переменную с двоичным типом ,

 

3- @input_data_1 =N’select Color,Size,class,TaxAmt,SalesAmount from [dbo].[FactInternetSales] FIS inner join [dbo].[DimProduct] DP on FIS.ProductKey=dp.ProductKey’ ,@input_data_1_name = N’inputDataSet’ ,@output_data_1_name = N’OutputDataset’  

Входные данные, собранныеиз базы данных SQL-сервера "Adventureworks".

 

4- С НАБОРОМ РЕЗУЛЬТАТОВ ((график varbinary (max)));

Верните график как формат двоичной переменной

После запуска кода мы можем получить результат bwlow

После запуска на выходе вы увидите, что у нас двоичный результат.

2- Хранить график в таблице

Просто создайте таблицу с именем ggplot

 

1

2

3

4

5

6

7

8

IF NOT EXISTS (SELECT 1 FROM sys.objects

WHERE object_id = OBJECT_ID(N'[dbo].[ggplot]')

AND [type] IN (N'U'))

BEGIN

alter TABLE [dbo].[ggplot](

[plot] [varbinary](MAX) NULL

);

END

Теперь вы можете поместить график в таблицу командой вставки, как показано ниже

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<strong><span style="color: #ff9900;">insert into [dbo].[ggplot]

</span></strong>exec sp_execute_external_script  @language =N'R',

@script=N'library("ggplot2")

fields<-inputDataSet

fields<-na.omit(fields)

image_file = tempfile();

jpeg(filename = image_file, width=1000, height=1000);

print(ggplot(fields,aes(x=fields$TaxAmt,y=fields$TaxAmt))+geom_boxplot()+facet_grid(fields$Color~.)

)

dev.off();

OutputDataset <- data.frame(data=readBin(file(image_file,"rb"),what=raw(),n=1e6))

',

@input_data_1 =N'select Color,Size,class,TaxAmt,SalesAmount

from [dbo].[FactInternetSales] FIS inner join

[dbo].[DimProduct] DP on FIS.ProductKey=dp.ProductKey'  

,@input_data_1_name = N'inputDataSet'

,@output_data_1_name = N'OutputDataset'

 

Теперь мы можем показать диаграмму в SSRS.

 

Отображение диаграммы в SSRS

Вам нужно иметь инструменты SQL Server Data для создания отчета SSRS.

 

1- Создайте проект SSRS



Затем:

 

После этого просто нажмите на область оформления и выберите вариант изображения




После вставки изображения нужно настроить меню изображения, назначив требуемые поля.




В filds нам нужно идентифицировать источник изображения (см. Выше рисунок), который находится из базы данных, поля и тип изображения (png, jpg и так далее). Наконец, просто нажмите «preview option», чтобы просмотреть изображение




Любые изображения могут быть помещены в отчет SSRS из дерева решений, кластеризации и т. д.. Кроме того, этот процесс можно рассматривать как способ расширения возможностей визуализации SSRS.

No Comments

Add a Comment